package controllers;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import java.util.List;

import models.Coralista;
import models.Hino;
import models.Usuario;
import play.mvc.Controller;

public class HinoController extends Controller {

	public static void index() {
		if(! Application.isLogged()) return;
		
		String menu;
    	String rodape = Application.rodapebasic;
    	if(Application.sessao.get("tipo").compareTo("0") == 0){
    		menu = Application.menubasic;
    	}
    	else{
    		menu = Application.menufull;
    	}
		
		// Mostra a tela de cadastro
		render("Application/cadHino.html", menu, rodape);
    }
	
	public static void exibicao() {
		if(! Application.isLogged()) return;
		
		String menu;
    	String rodape = Application.rodapebasic;
    	if(Application.sessao.get("tipo").compareTo("0") == 0){
    		menu = Application.menubasic;
    	}
    	else{
    		menu = Application.menufull;
    	}
		
		try {
			List<Hino> lis = Hino.all();
			
			// Mostra a tela de exibicao
	    	render("Application/exibicaoHino.html", lis, rodape, menu);
		}
		catch(SQLException ex) {
			String msg = "O codigo SQL teve um comportamento inesperado!";
    		
    		// Java Script mostrando a mensagem de erro!
            String 	script = "<script language=\"javascript\" type=\"text/javascript\">";
            		script += "alert ( \" " + msg + "\" ) </script> ";
            render("Application/cadHino.html", script, menu, rodape);
            return;
		}
    }
	
	public static void exibicaoHino(int codHino) {
		if(! Application.isLogged()) return;
		
		String menu;
    	String rodape = Application.rodapebasic;
    	if(Application.sessao.get("tipo").compareTo("0") == 0){
    		menu = Application.menubasic;
    	}
    	else{
    		menu = Application.menufull;
    	}
		
		try {
			Hino hino = Hino.findById(codHino);
			
			// Mostra a tela de exibicao
	    	render("Application/exibicaoHinoIndividual.html", hino, menu, rodape);
		}
		catch(SQLException ex) {
			String msg = "O codigo SQL teve um comportamento inesperado!";
    		
    		// Java Script mostrando a mensagem de erro!
            String 	script = "<script language=\"javascript\" type=\"text/javascript\">";
            		script += "alert ( \" " + msg + "\" ) </script> ";
            render("Application/exibicaoHino.html", script, menu, rodape);
            return;
		}
    }
	
	public static void add(File arquivo) {
    	if(! Application.isLogged()) return;
    	
		String menu;
    	String rodape = Application.rodapebasic;
    	if(Application.sessao.get("tipo").compareTo("0") == 0){
    		menu = Application.menubasic;
    	}
    	else{
    		menu = Application.menufull;
    	}
    	
    	String msg = "";
    	
    	// Criando o coralista
        Hino hino = new Hino();
        hino.setCodigo_usuario( Integer.parseInt(Application.sessao.get("codigo")) );
        hino.setTitulo(params.get("titulo"));
        hino.setInterprete(params.get("interprete"));
        hino.setLetra(params.get("letra"));
        hino.setTipo(Integer.parseInt(params.get("tipo")));
        
        // Validacao dos campos
    	if (hino.getTitulo().isEmpty()) {
    		msg += "Titulo Invalido!";
    	} else if (hino.getInterprete().isEmpty()) {
        	msg += "Interprete Invalido!";
    	} else if (hino.getLetra().isEmpty()) {
        	msg += "Letra Invalida!";
        } else {
        	// Deu certo! Inserir no banco
        	
        	try {
        		hino.save();
        		exibicao();
        	}
        	catch(SQLException ex) {
        		msg = "O codigo SQL teve um comportamento inesperado!";
        		
        		// Java Script mostrando a mensagem de erro!
                String 	script = "<script language=\"javascript\" type=\"text/javascript\">";
                		script += "alert ( \" " + msg + "\" ) </script> ";
                render("Application/cadHino.html", script, menu, rodape);
                return;
        	}
        	
        	return;
        }
        
        // Java Script mostrando a mensagem de erro!
        String 	script = "<script language=\"javascript\" type=\"text/javascript\">";
        		script += "alert ( \" " + msg + "\" ) </script> ";
        render("Application/cadCoralista.html", script, menu, rodape);
	}
	
	public static void excluirHino(int codigoHino) {
		if(!Application.isLogged()) return;
		Hino.delete(codigoHino);
		
		exibicao();
	}
}
